package com.zxx.admin.config.auth.filter;//package com.practicedev.base.config.auth.filter;
//
//
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.security.config.annotation.web.builders.HttpSecurity;
//import org.springframework.security.config.annotation.web.builders.WebSecurity;
//import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
//import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
//import org.springframework.security.config.http.SessionCreationPolicy;
//import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
//import org.springframework.security.crypto.password.PasswordEncoder;
//import org.springframework.security.web.csrf.CookieCsrfTokenRepository;
//import org.springframework.web.cors.CorsConfiguration;
//
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * @author Pu Zhiwei {@literal puzhiweipuzhiwei@foxmail.com}
// * create          2019-11-25 21:42
// */
//@Configuration
//@EnableWebSecurity
//public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
//    public static String ADMIN = "ROLE_ADMIN";
//
//    public static String USER = "ROLE_USER";
//
//
//    /**
//     * 开放访问的请求
//     */
//    private final static String[] PERMIT_ALL_MAPPING = {
//            "/api/hello",
//            "/api/login",
//            "/api/home",
//            "/api/verifyImage",
//            "/api/image/verify",
//            "/images/**"
//    };
//
//    @Override
//    protected void configure(HttpSecurity http) throws Exception {
//        http.authorizeRequests()
//                .antMatchers(PERMIT_ALL_MAPPING)
//                .permitAll()
//                .antMatchers("/api/user/**", "/api/data", "/api/logout")
//                // USER 和 ADMIN 都可以访问
//                .hasAnyAuthority(USER, ADMIN)
//                .antMatchers("/api/admin/**")
//                // 只有 ADMIN 才可以访问
//                .hasAnyAuthority(ADMIN)
//                .anyRequest()
//                .authenticated()
//                .and()
//                // 添加过滤器链,前一个参数过滤器， 后一个参数过滤器添加的地方
//                // 登陆过滤器
//
//                // 开启跨域
//                .cors()
//                .and()
//                // 开启 csrf
//                .csrf()
////                .disable()
//                .ignoringAntMatchers(PERMIT_ALL_MAPPING)
//                .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
//                .and()
//                .sessionManagement()
//                .sessionCreationPolicy(SessionCreationPolicy.STATELESS);
//    }
//
//    @Override
//    public void configure(WebSecurity web) throws Exception {
//        super.configure(web);
//    }
//
//
//}
